require('./index.css')
require('./index.string')
var nav = require('page/common/nav/index.js')
require('page/common/header/index.js')
var _mm   = require('util/mm.js')
var _cart = require('service/cart-service.js') 
var templateIndex = require('./index.string')

var page = {
    data : {

    },
    init : function(){
        this.onLoad();
        this.bindEvent();
    },
    onLoad : function(){
        this.loadCart()
    },
    //加载商品详情的数据
    loadCart : function(){
        var _this = this ; 
        // 获取购物车列表
        _cart.getCartList(function(res){
            _this.renderCart(res)
        },function(errMsg){
            _this.showCartError();
        })
    },
   
    bindEvent : function(){
        var _this = this;
        // 商品的选择 取消选择
        $(document).on('click','.cart-select',function(){
            var $this = $(this) ,
                prodcutId = $this.parents('.cart-table').data('product-id');
            // 选中状态
            if($this.is(':checked')){
                _cart.selectProduct(prodcutId,function(res){
                    _this.renderCart(res)
                },function(){
                    // 显示错误信息
                    _this.showCartError();
                })
            }
            // 没有选中
            else{
                _cart.unselectProduct(prodcutId,function(res){
                    _this.renderCart(res)
                },function(){
                    // 显示错误信息
                    _this.showCartError();
                })
            }            
        });

             // 商品的全选和非全选
        $(document).on('click','.cart-select-all',function(){
            var $this =$(this) ;
            // 全选
            if($this.is(':checked')){
                _cart.selectAllProduct(function(res){
                    _this.renderCart(res)
                },function(){
                    // 显示错误信息
                    _this.showCartError();
                })
            }
            // 取消全选
            else{
                _cart.unselectAllProduct(function(res){
                    _this.renderCart(res)
                },function(){
                    // 显示错误信息
                    _this.showCartError();
                })
            }            
        });

        // 商品数量的变化
        $(document).on('click','.count-btn',function(){
            var $this       = $(this),
                pCount      = $this.siblings('.count-input'),
                currCount   = parseInt(pCount.val()), //当前值
                productId   = $this.parents('.cart-table').data('product-id'),
                type        = $this.hasClass('plus') ? 'plus' : 'minus',
                minCount    = 1,
                maxCount    = pCount.data('max'),
                newCount    = 0;
            if(type === 'plus'){
                if( currCount >= maxCount ){
                    _mm.errorTips('该商品数量已达到上限')
                    return;
                }
                newCount = currCount + 1;
            }else if(type === 'minus'){
                if(currCount <= minCount){
                    return
                }
                    newCount = currCount - 1;
            }
               _cart.updataProduct({
                   productId : productId,
                   count     : newCount
               },function(res){
                   _this.renderCart(res)
               },function(){
                    _this.showCartError();
               })
        });
            // 删除单个商品
            $(document).on('click','.cart-delete',function(){
                if(window.confirm('确定要删除该商品吗?')){
                    var productId = $(this).parents('.cart-table').data('product-id')
                   _this.delectCartProduct(productId)
                }
            });
            // 删除选中商品
            $(document).on('click','.delete-selected',function(){
                if(window.confirm('确定要删除选中的商品吗?')){
                   var arrProductIds = [],
                       $selectedItem = $('.cart-select:checked');
                       //循环选中商品的id
                   for(var i = 0 , iLength = $selectedItem.length ; i<iLength; i++){
                        arrProductIds.push($($selectedItem[i]).parents('.cart-table').data('product-id'))
                   }
                    if(arrProductIds.length){
                        _this.delectCartProduct(arrProductIds.join(','))
                    }else{
                        _mm.errorTips('请选择您要删除的商品')
                    }
                }
            });
            // 去结算
            $(document).on('click','.btn-submit',function(){
                // 总价大于0 提交
                if(_this.data.cartInfo && _this.data.cartInfo.cartTotalPrice > 0){
                    window.location.href = './order-confirm.html'
                }else{
                    _mm.errorTips('请选择商品再提交')
                }
            })
            

    },
    // 渲染购物车
    renderCart : function(data){
        this.filter(data)
        // 缓存购物车信息
        this.data.cartInfo = data;
        // 渲染HTML
        var cartHtml = _mm.renderHtml(templateIndex,data)
        $('.page-wrap').html(cartHtml);
        // 更新导航条的购物车数量
        nav.loadCartCount()
    },
    // 删除购物车商品 支持批量 productId 用逗号分隔
    delectCartProduct : function(productIds){
        var _this = this;
        _cart.delectCartProduct(productIds,function(res){
            _this.renderCart(res)
        },function(errMsg){
            _this.showCartError();
        })
    },

    // 数据匹配  遍历数据的时候用 判断购物车有没有数据 
    filter : function(data){
        // 强制转成布尔值
        data.notEmpty = !!data.cartProductVoList.length;
    },
     // 显示错误信息
    showCartError : function(){
        $('.page-wrap').html('<p class="err-Tip">哪里不对了,刷新下试试。</p>')
    }

}


$(function(){
    page.init()
})